package com.yida.gwj.deposit.domain.request.split;

import com.yida.gwj.deposit.domain.request.GwjDepositBusinessLogRequest;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * @author lqq
 * @date 2023-02-22
 */
@ApiModel("资金分户 提交保存参数")
public class GwjFundsSplitSaveSubmitRequest implements Serializable {
	private static final long serialVersionUID = 5422020749736092070L;

	@Valid
	@NotNull(groups = {Save.class, Update.class}, message = "案例信息不能为空")
	@ApiModelProperty(value = "案例信息")
	private GwjFundsSplitBusinessRequest business;

	@Valid
	@NotNull(groups = {Save.class}, message = "小区信息不能为空")
	@ApiModelProperty(value = "业务小区参数")
	private GwjFundsSplitBusinessCommunityRequest businessCommunity;

	@Valid
	@NotEmpty(groups = {Save.class}, message = "业务金额不能为空")
	@ApiModelProperty(value = "业务金额不能为空")
	private List<GwjFundsSplitBusinessDetailRequest> moneyDetails;

	@Valid
	@NotEmpty(groups = {Save.class, Update.class}, message = "楼栋信息不能为空")
	@ApiModelProperty(value = "业务楼栋参数")
	private List<GwjFundsSplitBusinessBuildRequest> businessBuilds;

	@Valid
	@NotNull(groups = {Save.class}, message = "业务金额不能为空")
	@ApiModelProperty("业务金额参数")
	private GwjFundsSplitBusinessMoneyRequest businessMoney;

	@ApiModelProperty("选择用户及意见内容")
	private GwjDepositBusinessLogRequest businessLog;

	/* 分组校验 */
	public @interface Save {
	}

	public @interface Update {
	}

	public @interface Sumbit {
	}

	public List<GwjFundsSplitBusinessDetailRequest> getMoneyDetails() {
		return moneyDetails;
	}

	public void setMoneyDetails(List<GwjFundsSplitBusinessDetailRequest> moneyDetails) {
		this.moneyDetails = moneyDetails;
	}

	public GwjFundsSplitBusinessRequest getBusiness() {
		return business;
	}

	public void setBusiness(GwjFundsSplitBusinessRequest business) {
		this.business = business;
	}

	public GwjFundsSplitBusinessCommunityRequest getBusinessCommunity() {
		return businessCommunity;
	}

	public void setBusinessCommunity(GwjFundsSplitBusinessCommunityRequest businessCommunity) {
		this.businessCommunity = businessCommunity;
	}

	public List<GwjFundsSplitBusinessBuildRequest> getBusinessBuilds() {
		return businessBuilds;
	}

	public void setBusinessBuilds(List<GwjFundsSplitBusinessBuildRequest> businessBuilds) {
		this.businessBuilds = businessBuilds;
	}

	public GwjFundsSplitBusinessMoneyRequest getBusinessMoney() {
		return businessMoney;
	}

	public void setBusinessMoney(GwjFundsSplitBusinessMoneyRequest businessMoney) {
		this.businessMoney = businessMoney;
	}

	public GwjDepositBusinessLogRequest getBusinessLog() {
		return businessLog;
	}

	public void setBusinessLog(GwjDepositBusinessLogRequest businessLog) {
		this.businessLog = businessLog;
	}

	@Override
	public String toString() {
		final StringBuffer sb = new StringBuffer("GwjFundsSplitSaveSubmitRequest{");
		sb.append("business=").append(business);
		sb.append(", businessCommunity=").append(businessCommunity);
		sb.append(", moneyDetails=").append(moneyDetails);
		sb.append(", businessBuilds=").append(businessBuilds);
		sb.append(", businessMoney=").append(businessMoney);
		sb.append(", businessLog=").append(businessLog);
		sb.append('}');
		return sb.toString();
	}
}
